#[derive(Debug)]
pub enum CallError<SE, DE> {
    ReqSerErr(SE),
    RespDeserErr(DE),
    CallPanic,
    TimeOut,
    RespMismatch,
    LocalRespSenderDropped,
    LocalReqRecverDropped,
}

pub(super) enum SerOrDeserErr<SE, DE> {
    SerErr(SE),
    DeserErr(DE),
}
impl<SE, DE> From<SerOrDeserErr<SE, DE>> for CallError<SE, DE> {
    fn from(value: SerOrDeserErr<SE, DE>) -> Self {
        match value {
            SerOrDeserErr::SerErr(se) => Self::ReqSerErr(se),
            SerOrDeserErr::DeserErr(de) => Self::RespDeserErr(de),
        }
    }
}
